import { NextResponse, NextRequest } from 'next/server';
export function middleware(request: NextRequest) {
  // 可以理解为 next 开启了一个服务器 然后部署静态资源在服务器上
  // 然后这里拦截所有的 请求 包括 静态资源
  // 所有的 请求都会拦截 包括 静态资源
  // 要拦截 外部 接口的请求可以写到 route 里面去
  // 后期 部署 我自己理解为：将next 程序 或打包好的程序： 里面包含next的代码 部署到 服务器上，然后根据访问到url 去 动态渲染页面
  // console.log( request.nextUrl.pathname )
  // 可以在这做权限 校验什么的 重定向登陆页面
  
  // next 是一个全栈框架 可以写 api 接口这些
  const auth = false;
  if (!auth) {
    if (request.nextUrl.pathname.startsWith('/api')) {
      return NextResponse.json(
        {
          status: 401,
          body: 'auth failed',
        },
        { status: 401 }
      );
    } else {
      return NextResponse.redirect(`${request.nextUrl.origin}/login`);
    }
  }
  return NextResponse.next();
}

// 匹配路径 只拦截 这些路径
export const config = {
  matcher: ['/api/:path*', '/order/:path*'],
};
